# 简化版文件管理器的Makefile

# 编译器设置
CC = gcc
CFLAGS = -Wall -Wextra -pedantic -std=c99 -I$(INC_DIR)
LDFLAGS = 

# 目录设置
SRC_DIR = src
INC_DIR = include
OBJ_DIR = obj
BIN_DIR = bin

# 目标文件名
TARGET = $(BIN_DIR)/file_manager

# 源文件和对象文件
SRCS = $(filter-out $(SRC_DIR)/file_manager.c, $(wildcard $(SRC_DIR)/*.c))
OBJS = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRCS))

# 默认目标
all: setup $(TARGET)

# 创建必要的目录
setup:
	@mkdir -p $(OBJ_DIR) $(BIN_DIR)

# 编译目标
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

# 编译规则
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(INC_DIR)/file_manager.h
	$(CC) $(CFLAGS) -c $< -o $@

# 清理编译结果
clean:
	rm -rf $(OBJ_DIR) $(BIN_DIR)

# 运行程序
run: $(TARGET)
	./$(TARGET)

# 显示帮助信息
help:
	@echo "可用命令:";
	@echo "  make          - 编译程序";
	@echo "  make clean    - 清理编译结果";
	@echo "  make run      - 编译并运行程序";
	@echo "  make help     - 显示帮助信息";

.PHONY: all setup clean run help